package com.liang.book.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
//枚举类不能用@Data 里面含有无参构造方法

@AllArgsConstructor
public enum StatusEnums {
    DELETED(0,"无效"),
    NORMAL(1,"可借阅"),
    FORBIDDEN(2,"不可借阅");
    @Getter
    private int code;
    @Getter
    private String name;
     public static StatusEnums getNameByCode(int code) {
         //性能更高一点？ 用map性能更高
//         switch (code) {
//             case 0: return DELETED;
//             case 1: return NORMAL;
//             case 2: return FORBIDDEN;
//
//         }
//         return null;
//         Arrays.stream(StatusEnums.values()).forEach();

//         for(StatusEnums statusEnums: StatusEnums.values()) {
//             if(statusEnums.getCode()==code) {
//                 return statusEnums;
//             }
//         }
//         return null;
         return Arrays.stream(StatusEnums.values()).filter(x -> x.getCode() == code).findFirst().orElse(null);
     }
//public enum StatusEnums {
//    DELETED(0,"无效"),
//    NORMAL(1,"可借阅"),
//    FORBIDDEN(2,"不可借阅");

//    StatusEnums(int code, String name) {
//        this.code = code;
//        this.name = name;
//    }
//
//    private int code;
//
//    private String name;
//
//    public int getCode() {
//        return code;
//    }
//
//    public String getName() {
//        return name;
//    }
}
